<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
      <link rel="stylesheet" type="text/css" href="style.css" />
   </head>
   <body onload="if (top.frames['componentsframe'] == undefined) { s = window.location.toString(); window.location = 'index.html?p=' + s.substring(s.lastIndexOf('/')+1); }">
<h2 class="comptitle">Compound Module <i>Nic80211MultiChannel</i></h2>
<b>Package:</b> org.mixim.modules.nic<br/><b>File: <a href="src-modules-nic-Nic80211MultiChannel.ned.html">src/modules/nic/Nic80211MultiChannel.ned</a></b><br/>
<p>This NIC implements an 802.11 network interface card with multi channel 
support and power consumption.
Note: This NIC does not model interference between adjacent channels!</p>
<p><b>See also:</b> <a href="org.mixim.modules.mac.Mac80211MultiChannel.html">Mac80211MultiChannel</a>, Decider80211MultiChannel</p>
<p><b>Author:</b> Karl Wessel</p>
<img src="org.mixim.modules.nic.Nic80211MultiChannel-type.png" ismap="yes" usemap="#type-diagram"/><map name="type-diagram">
<area shape="rect" href="org.mixim.base.modules.IWirelessMac.html" title="IWirelessMac" alt="IWirelessMac" coords="34,71,78,130">
<area shape="rect" href="org.mixim.base.phyLayer.IWirelessPhy.html" title="IWirelessPhy" alt="IWirelessPhy" coords="42,153,70,196">
</map>
<h3 class="subtitle">Usage diagram:</h3>
<p>The following diagram shows usage relationships between types.
Unresolved types are missing from the diagram. Click <a href="full-ned-usage-diagram.html">here</a> to see the full picture.</p>
<img src="org.mixim.modules.nic.Nic80211MultiChannel-usage.png" ismap="yes" usemap="#usage-diagram"/><map name="usage-diagram"><area shape="rect" href="org.mixim.modules.nic.Nic80211MultiChannel.html" title="Compound Module Nic80211MultiChannel" alt="Nic80211MultiChannel" coords="7,16,145,40">
</map>
<h3 class="subtitle">Inheritance diagram:</h3>
<p>The following diagram shows inheritance relationships for this type.
Unresolved types are missing from the diagram. Click <a href="full-ned-inheritance-diagram.html">here</a> to see the full picture.</p>
<img src="org.mixim.modules.nic.Nic80211MultiChannel-inheritance.png" ismap="yes" usemap="#inheritance-diagram"/><map name="inheritance-diagram"><area shape="rect" href="org.mixim.modules.nic.Nic80211MultiChannel.html" title="Compound Module Nic80211MultiChannel" alt="Nic80211MultiChannel" coords="7,88,145,112">
<area shape="rect" href="org.mixim.modules.nic.WirelessNicBattery.html" title="Compound Module WirelessNicBattery" alt="WirelessNicBattery" coords="15,16,137,40">
</map>
<h3 class="subtitle">Extends:</h3>
<table class="typestable">
   <tr>
      <th class="name">Name</th>
      <th class="type">Type</th>
      <th class="description">Description</th>
   </tr>
<tr>
   <td>
<a href="org.mixim.modules.nic.WirelessNicBattery.html">WirelessNicBattery</a>
   </td>
   <td>
<i>compound&nbsp;module</i>
   </td>
   <td>

<p>Basic wireless nic definition</p>

   </td>
</tr>
</table>
<h3 class="subtitle">Parameters:</h3>
<table class="paramstable">
   <tr>
      <th class="name">Name</th>
      <th class="type">Type</th>
      <th class="defaultvalue">Default value</th>
      <th class="description">Description</th>
   </tr>
<tr class="inherited">
   <td>connectionManagerName</td>
   <td>
      <i>string</i>
   </td>
   <td>""</td>
   <td>
<p>name of the <a href="org.mixim.base.connectionManager.ConnectionManager.html">ConnectionManager</a> module</p>
   </td>
</tr>
<tr class="inherited">
   <td>phyType</td>
   <td>
      <i>string</i>
   </td>
   <td>"org.mixim.modules.phy.PhyLayerBattery"</td>
   <td>   </td>
</tr>
<tr class="inherited">
   <td>macType</td>
   <td>
      <i>string</i>
   </td>
   <td>"Mac80211MultiChannel"</td>
   <td>
   </td>
</tr>
<tr class="inherited">
   <td>sleepCurrent</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>   </td>
</tr>
<tr class="inherited">
   <td>rxCurrent</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>   </td>
</tr>
<tr class="inherited">
   <td>decodingCurrentDelta</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>   </td>
</tr>
<tr class="inherited">
   <td>txCurrent</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>   </td>
</tr>
<tr class="inherited">
   <td>setupRxCurrent</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>   </td>
</tr>
<tr class="inherited">
   <td>setupTxCurrent</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>   </td>
</tr>
<tr class="inherited">
   <td>rxTxCurrent</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>   </td>
</tr>
<tr class="inherited">
   <td>txRxCurrent</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>   </td>
</tr>
<tr class="local">
   <td>onCurrent</td>
   <td>
      <i>double</i>
   </td>
   <td>0</td>
   <td>
   </td>
</tr>
</table>
<h3 class="subtitle">Properties:</h3>
<table class="propertiestable">
   <tr>
      <th class="name">Name</th>
      <th class="value">Value</th>
      <th class="description">Description</th>
   </tr>
<tr>
   <td>display</td>
   <td><i>i=block/ifcard</i></td>
   <td></td>
</tr>
</table>
<h3 class="subtitle">Gates:</h3>
<table class="gatestable">
   <tr>
      <th class="name">Name</th>
      <th class="type">Direction</th>
      <th class="gatesize">Size</th>
      <th class="description">Description</th>
   </tr>
<tr class="inherited">
   <td>upperLayerIn</xsl:if></td>
   <td><i>input</i></td>
   <td></td>   <td>
<p>to upper layers</p>
</td>
</tr>
<tr class="inherited">
   <td>upperLayerOut</xsl:if></td>
   <td><i>output</i></td>
   <td></td>   <td>
<p>from upper layers</p>
</td>
</tr>
<tr class="inherited">
   <td>upperControlOut</xsl:if></td>
   <td><i>output</i></td>
   <td></td>   <td>
<p>control information</p>
</td>
</tr>
<tr class="inherited">
   <td>upperControlIn</xsl:if></td>
   <td><i>input</i></td>
   <td></td>   <td>
<p>control information</p>
</td>
</tr>
<tr class="inherited">
   <td>radioIn</xsl:if></td>
   <td><i>input</i></td>
   <td></td>   <td>
<p>radioIn gate for sendDirect</p>
</td>
</tr>
</table>
<h3 class="subtitle">Unassigned submodule parameters:</h3>
<table class="deepparamstable">
   <tr>
      <th class="name">Name</th>
      <th class="type">Type</th>
      <th class="defaultvalue">Default value</th>
      <th class="description">Description</th>
   </tr>
<tr>
   <td><a href="org.mixim.base.modules.IWirelessMac.html">mac</a>.headerLength</td>
   <td>
      <i>int</i>
   </td>
   <td></td>
   <td>
<p>length of the MAC packet header (in bits)</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.modules.IWirelessMac.html">mac</a>.address</td>
   <td>
      <i>string</i>
   </td>
   <td></td>
   <td>
<p>MAC address as hex string (12 hex digits), or
"auto". "auto" values will be replaced by
a generated MAC address in init stage 1.</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.recordStats</td>
   <td>
      <i>bool</i>
   </td>
   <td></td>
   <td>
<p>enable/disable tracking of statistics (eg. cOutvectors)</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.headerLength</td>
   <td>
      <i>int</i>
   </td>
   <td></td>
   <td>
<p>defines the length of the phy header (/preamble)</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.usePropagationDelay</td>
   <td>
      <i>bool</i>
   </td>
   <td></td>
   <td>
<p>Should transmission delay be simulated?</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.thermalNoise</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>
<p>the strength of the thermal noise [dBm]</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.useThermalNoise</td>
   <td>
      <i>bool</i>
   </td>
   <td></td>
   <td>
<p>should thermal noise be considered?</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.analogueModels</td>
   <td>
      <i>xml</i>
   </td>
   <td></td>
   <td>
<p>Specification of the analogue models to use and their parameters</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.decider</td>
   <td>
      <i>xml</i>
   </td>
   <td></td>
   <td>
<p>Specification of the decider to use and its parameters</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.sensitivity</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>
<p>The sensitivity of the physical layer [dBm]</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.maxTXPower</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>
<p>The maximum transimission power of the physical layer [mW]</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.timeRXToTX</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.timeRXToSleep</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>
<p>Elapsed time to switch from receive to sleep state</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.timeTXToRX</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>
<p>Elapsed time to switch from send to receive state</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.timeTXToSleep</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>
<p>Elapsed time to switch from send to sleep state</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.timeSleepToRX</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>
<p>Elapsed time to switch from sleep to receive state</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.timeSleepToTX</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>
<p>Elapsed time to switch from sleep to send state</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.initialRadioState</td>
   <td>
      <i>int</i>
   </td>
   <td></td>
   <td>
<p>State the radio is initially in (0=RX, 1=TX, 2=Sleep)</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.radioMinAtt</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>
<p>radios gain factor (attenuation) while receiving</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.radioMaxAtt</td>
   <td>
      <i>double</i>
   </td>
   <td></td>
   <td>
<p>radios gain factor (attenuation) while not receiving</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.nbRadioChannels</td>
   <td>
      <i>int</i>
   </td>
   <td></td>
   <td>
<p>Number of available radio channels. Defaults to single channel radio.</p>
   </td>
</tr>
<tr>
   <td><a href="org.mixim.base.phyLayer.IWirelessPhy.html">phy</a>.initialRadioChannel</td>
   <td>
      <i>int</i>
   </td>
   <td></td>
   <td>
<p>Initial radio channel.</p>
   </td>
</tr>
</table>
<h3 class="subtitle">Source code:</h3>
<pre class="src"><span style="color: #808080; font-style: italic; ">//
// This NIC implements an 802.11 network interface card with multi channel 
// support and power consumption.
// Note: This NIC does not model interference between adjacent channels!
//
// </span><span style="color: #000080; ">@see</span><span style="color: #808080; font-style: italic; "> Mac80211MultiChannel, Decider80211MultiChannel
// </span><span style="color: #000080; ">@author</span><span style="color: #808080; font-style: italic; "> Karl Wessel
//
</span><span style="color: #800000; font-weight: bold; ">module</span><span style="color: #000000; "> </span><span style="color: #000000; ">Nic80211MultiChannel</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">extends</span><span style="color: #000000; "> </span><span style="color: #000000; ">WirelessNicBattery</span><span style="color: #000000; ">
{
    </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
        </span><span style="color: #000000; ">macType</span><span style="color: #000000; "> = </span><span style="color: #800000; font-weight: bold; ">default</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;Mac80211MultiChannel&quot;</span><span style="color: #000000; ">);

        </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;i=block/ifcard&quot;</span><span style="color: #000000; ">);
        </span><span style="color: #000080; font-weight: bold; ">double</span><span style="color: #000000; "> </span><span style="color: #000000; ">onCurrent</span><span style="color: #000000; "> </span><span style="color: #000000; font-weight: bold; ">@unit</span><span style="color: #000000; ">(</span><span style="color: #000000; ">mA</span><span style="color: #000000; ">) = </span><span style="color: #800000; font-weight: bold; ">default</span><span style="color: #000000; ">(</span><span style="color: #008000; ">0</span><span style="color: #000000; ">);

        </span><span style="color: #000000; ">mac</span><span style="color: #000000; ">.</span><span style="color: #000000; ">queueLength</span><span style="color: #000000; "> = </span><span style="color: #800000; font-weight: bold; ">default</span><span style="color: #000000; ">(</span><span style="color: #008000; ">20</span><span style="color: #000000; ">);
        </span><span style="color: #000000; ">mac</span><span style="color: #000000; ">.</span><span style="color: #000000; ">bitrate</span><span style="color: #000000; "> = </span><span style="color: #800000; font-weight: bold; ">default</span><span style="color: #000000; ">(</span><span style="color: #008000; ">2</span><span style="color: #000000; ">E</span><span style="color: #000000; ">+</span><span style="color: #008000; ">6</span><span style="color: #000000; ">bps</span><span style="color: #000000; ">);
        </span><span style="color: #000000; ">mac</span><span style="color: #000000; ">.</span><span style="color: #000000; ">autoBitrate</span><span style="color: #000000; "> = </span><span style="color: #800000; font-weight: bold; ">default</span><span style="color: #000000; ">(</span><span style="color: #008000; ">false</span><span style="color: #000000; ">);
        </span><span style="color: #808080; font-style: italic; ">// values if no fading is modelled, gives at most 1% packet error rate
</span><span style="color: #000000; ">        </span><span style="color: #000000; ">mac</span><span style="color: #000000; ">.</span><span style="color: #000000; ">snr2Mbit</span><span style="color: #000000; "> = </span><span style="color: #800000; font-weight: bold; ">default</span><span style="color: #000000; ">(</span><span style="color: #008000; ">1</span><span style="color: #000000; ">.</span><span style="color: #008000; ">46</span><span style="color: #000000; ">dB</span><span style="color: #000000; ">);
        </span><span style="color: #000000; ">mac</span><span style="color: #000000; ">.</span><span style="color: #000000; ">snr5Mbit</span><span style="color: #000000; "> = </span><span style="color: #800000; font-weight: bold; ">default</span><span style="color: #000000; ">(</span><span style="color: #008000; ">2</span><span style="color: #000000; ">.</span><span style="color: #008000; ">6</span><span style="color: #000000; ">dB</span><span style="color: #000000; ">);
        </span><span style="color: #000000; ">mac</span><span style="color: #000000; ">.</span><span style="color: #000000; ">snr11Mbit</span><span style="color: #000000; "> = </span><span style="color: #800000; font-weight: bold; ">default</span><span style="color: #000000; ">(</span><span style="color: #008000; ">5</span><span style="color: #000000; ">.</span><span style="color: #008000; ">68</span><span style="color: #000000; ">dB</span><span style="color: #000000; ">);
        </span><span style="color: #000000; ">mac</span><span style="color: #000000; ">.</span><span style="color: #000000; ">neighborhoodCacheSize</span><span style="color: #000000; "> = </span><span style="color: #800000; font-weight: bold; ">default</span><span style="color: #000000; ">(</span><span style="color: #008000; ">30</span><span style="color: #000000; ">);
        </span><span style="color: #000000; ">mac</span><span style="color: #000000; ">.</span><span style="color: #000000; ">neighborhoodCacheMaxAge</span><span style="color: #000000; "> = </span><span style="color: #800000; font-weight: bold; ">default</span><span style="color: #000000; ">(</span><span style="color: #008000; ">100</span><span style="color: #000000; ">s</span><span style="color: #000000; ">);
        </span><span style="color: #000000; ">mac</span><span style="color: #000000; ">.</span><span style="color: #000000; ">txPower</span><span style="color: #000000; "> = </span><span style="color: #800000; font-weight: bold; ">default</span><span style="color: #000000; ">(</span><span style="color: #008000; ">110</span><span style="color: #000000; ">.</span><span style="color: #008000; ">11</span><span style="color: #000000; ">mW</span><span style="color: #000000; ">);

        </span><span style="color: #000000; ">phy</span><span style="color: #000000; ">.</span><span style="color: #000000; ">headerLength</span><span style="color: #000000; "> = </span><span style="color: #008000; ">192</span><span style="color: #000000; ">bit</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">phy</span><span style="color: #000000; ">.</span><span style="color: #000000; ">sensitivity</span><span style="color: #000000; "> = </span><span style="color: #800000; font-weight: bold; ">default</span><span style="color: #000000; ">(-</span><span style="color: #008000; ">119</span><span style="color: #000000; ">.</span><span style="color: #008000; ">5</span><span style="color: #000000; ">dBm</span><span style="color: #000000; ">);
        </span><span style="color: #000000; ">phy</span><span style="color: #000000; ">.</span><span style="color: #000000; ">decider</span><span style="color: #000000; "> = </span><span style="color: #800000; font-weight: bold; ">default</span><span style="color: #000000; ">(</span><span style="color: #800080; font-weight: bold; ">xmldoc</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;Nic80211MultiChannel_Decider.xml&quot;</span><span style="color: #000000; ">));
        </span><span style="color: #000000; ">phy</span><span style="color: #000000; ">.</span><span style="color: #000000; ">nbRadioChannels</span><span style="color: #000000; "> = </span><span style="color: #008000; ">15</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">phy</span><span style="color: #000000; ">.</span><span style="color: #000000; ">initialRadioChannel</span><span style="color: #000000; "> = </span><span style="color: #800000; font-weight: bold; ">default</span><span style="color: #000000; ">(</span><span style="color: #008000; ">1</span><span style="color: #000000; ">);

        </span><span style="color: #808080; font-style: italic; ">//Mac80211 does not support switching times
</span><span style="color: #000000; ">        </span><span style="color: #000000; ">phy</span><span style="color: #000000; ">.</span><span style="color: #000000; ">timeRXToTX</span><span style="color: #000000; "> = </span><span style="color: #008000; ">0</span><span style="color: #000000; ">s</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">phy</span><span style="color: #000000; ">.</span><span style="color: #000000; ">timeRXToSleep</span><span style="color: #000000; "> = </span><span style="color: #008000; ">0</span><span style="color: #000000; ">s</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">phy</span><span style="color: #000000; ">.</span><span style="color: #000000; ">timeTXToRX</span><span style="color: #000000; "> = </span><span style="color: #008000; ">0</span><span style="color: #000000; ">s</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">phy</span><span style="color: #000000; ">.</span><span style="color: #000000; ">timeTXToSleep</span><span style="color: #000000; "> = </span><span style="color: #008000; ">0</span><span style="color: #000000; ">s</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">phy</span><span style="color: #000000; ">.</span><span style="color: #000000; ">timeSleepToRX</span><span style="color: #000000; "> = </span><span style="color: #008000; ">0</span><span style="color: #000000; ">s</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">phy</span><span style="color: #000000; ">.</span><span style="color: #000000; ">timeSleepToTX</span><span style="color: #000000; "> = </span><span style="color: #008000; ">0</span><span style="color: #000000; ">s</span><span style="color: #000000; ">;
}

</span></pre>
   <hr><p class="footer"><a href="http://creativecommons.org/licenses/by-sa/3.0" target="_top"><img src="by-sa.png"></a> This documentation is released under the <a href="http://creativecommons.org/licenses/by-sa/3.0" target="_top">Creative Commons license</a></p>
   </body>
</html>
